package com.sunspring.zdcall.service;

import com.sunspring.zdcall.bo.DeptBo;
import com.sunspring.zdcall.entity.ZdBaseCheckroom;

import java.util.List;

/**
 * @Author WuLei
 * @Date 2018/11/27  16:53
 */
public interface CheckRoomService {

    /**
     * 根据检查室id查询检查室信息
     * @param id 检查室id
     * @return ZdBaseCheckroom
     */
    ZdBaseCheckroom getById(String id);

    /**
     * 新增单个检查室
     * @param checkRoomInfo ZdBaseCheckroom
     */
    void addCheck(ZdBaseCheckroom checkRoomInfo);

    /**
     * 根据roomId删除检查室
     * @param roomId 检查室id
     */
    void delete(String roomId);

    /**
     * 根据checkId修改检查室
     * @param checkRoomInfo ZdBaseCheckroom
     */
    void updateById(ZdBaseCheckroom checkRoomInfo);

    /**
     * 根据编号和科室编号查询
     * @param id        检查室编号
     * @param deptId    科室编号
     * @return ZdBaseCheckroom
     */
    ZdBaseCheckroom getByIdAndDeptId(String id, String deptId);

    /**
     * 条件查询
     * @param checkroom ZdBaseCheckroom
     * @return List<ZdBaseCheckroom>
     */
    List<ZdBaseCheckroom> getSelective(ZdBaseCheckroom checkroom);

    /**
     * 前缀名称唯一性校验
     * @param deptId 科室id
     * @param prefix 前缀
     */
    void checkPrefix(String deptId, String prefix);

    /**
     * 启用/停用检查室
     * @param checkroomId 检查室Id
     * @param deptId 所属科室Id
     */
    void switchCheckroom(String deptId,String checkroomId);

    /**
     * 根据科室Id删除检查室
     * @param deptId 科室Id
     */
    void deleteByDeptId(String deptId);

    /**
     * 根据科室Id修改
     * @param deptId 科室Id
     * @param code 状态id
     */
    void updateStateByDeptId(String deptId, int code);


    /**
     * 根据科室Id查询
     * @param deptId 科室Id
     * @return List<ZdBaseCheckroom>
     */
    List<ZdBaseCheckroom> getByDeptId(String deptId);

    /**
     * 查询所有启用状态的检查室
     * @return List<CheckroomBo>
     */
    List<DeptBo> getAllAct();



}
